# -*- coding: utf-8 -*-
"""
@Time    : 2024/9/10 15:39 
@Author  : ZhangShenao 
@File    : 3.列表的排序.py 
@Desc    : 列表的排序
"""

letters = ["ddddddddd", "e", "aaa", "cccc", "bb"]
# 使用内置的sorted函数,对列表进行排序
# 排序后会生成一个新列表,与原始列表互不影响
# 可以认为:sorted函数无副作用
# 默认按照升序排序
sorted_letters = sorted(letters)
# 可以通过reverse参数,指定升序/降序
sorted_letters_desc = sorted(letters, reverse=True)
# 可以通过key参数,指定排序的规则,如按照长度排序
sorted_letters_by_len = sorted(letters, key=lambda x: len(x))
print(f"letters:{letters}")  # ['ddddddddd', 'e', 'aaa', 'cccc', 'bb']
print(f"sorted_letters:{sorted_letters}")  # ['aaa', 'bb', 'cccc', 'ddddddddd', 'e']
print(f"sorted_letters_desc:{sorted_letters_desc}")  # ['e', 'ddddddddd', 'cccc', 'bb', 'aaa']
print(f"sorted_letters_by_len:{sorted_letters_by_len}")  # ['e', 'bb', 'aaa', 'cccc', 'ddddddddd']

# 使用字符串的sort方法,会在直接原始列表上进行原地排序
# 该方法会直接修改原列表,产生副作用
letters.sort()
print(f"letters:{letters}")  # letters:['aaa', 'bb', 'cccc', 'ddddddddd', 'e']
